/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.caelum.dao;

import br.com.caelum.model.Usuario;
import br.com.caelum.util.HibernateUtil;
import br.com.caelum.vraptor.ioc.Component;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Rachid
 */
@Component
public class UsuarioDao extends GenericDao<Usuario> {

    @Override
    protected Class<Usuario> getClassePersistente() {
        return Usuario.class;
    }

    public Boolean verificaUsuario(Usuario user) {
        Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
        sessao.beginTransaction();
        Usuario usuario = (Usuario) sessao.createCriteria(Usuario.class).
                add(Restrictions.eq("login", user.getLogin())).uniqueResult();
        sessao.getTransaction().commit();
        return usuario != null;
    }

    public Usuario buscaUsuario(Usuario usuario) {
        Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
        sessao.beginTransaction();
        Usuario carregado = (Usuario) sessao.createCriteria(Usuario.class)
                            .add(Restrictions.eq("login", usuario.getLogin()))
                            .add(Restrictions.eq("senha", usuario.getSenha()))
                            .uniqueResult();
        sessao.getTransaction().commit();
        return carregado;
    }
}
